<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>AngelScript: Byte code instructions</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>


</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">AngelScript
   
   </div>
   
  </td>
  
  
  
   
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('doc_adv_jit_1.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">Byte code instructions </div>  </div>
</div>
<div class="contents">
<div class="textblock"><p>This page gives a brief description of each of the byte code instructions that the virtual machine has.</p>
<ul>
<li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_1">Object management</a></li>
<li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_2">Math instructions</a></li>
<li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_3">Bitwise instructions</a></li>
<li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_4">Comparisons</a></li>
<li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_5">Type conversions</a></li>
<li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_6">Increment and decrement</a></li>
<li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_7">Flow control</a></li>
<li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_8">Stack and data management</a></li>
<li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_9">Global variables</a></li>
</ul>
<h2><a class="anchor" id="doc_adv_jit_1_1"></a>
Object management</h2>
<p>Perform a bitwise copy of a memory buffer to another</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0aa06ef833e37285449bfc72e0c93479a9">asBC_COPY</a></li>
</ul>
<p>Push the address and length of a string on the stack</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0aa9541dbcbb58f820d5d8e81414367d5e">asBC_STR</a></li>
</ul>
<p>Allocate the memory for an object and setup the VM to execute the constructor</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ac215e24151dbbf8ca218ee90b77953d2">asBC_ALLOC</a></li>
</ul>
<p>Release the memory of an object</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a1d13cb9820edf1d65e09e3c70f67d3b9">asBC_FREE</a></li>
</ul>
<p>Move the address in an object variable to the object register. The address in the variable is then cleared.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a05fa84bd9f65d7e99871d9b78da54e16">asBC_LOADOBJ</a></li>
</ul>
<p>Move the address from the object register to an object variable. The address in the object register is then cleared.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0aaa9dd5f07ce2b4b9d72750daa4b64294">asBC_STOREOBJ</a></li>
</ul>
<p>Copy the object handle from one address to another. The reference count of the object is updated to reflect the copy.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a0509f97130860b6fe3477f66e9fb712d">asBC_REFCPY</a></li>
</ul>
<p>Push the pointer of an object type on the stack</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a0dcad2ccee9332253501c3cef2200fad">asBC_OBJTYPE</a></li>
</ul>
<p>Push the type id on the stack</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a8f1ffc19b950ebc7b6a4b9ac97f8dc4d">asBC_TYPEID</a></li>
</ul>
<p>Pop an address to a script object from the stack. If the desired cast can be made store the address in the object register.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a4ef6c5e255ffe285bff104bacaed2ba9">asBC_Cast</a></li>
</ul>
<p>Push the function pointer on the stack</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ab4a58c4177502bd6d3a034f2d4244404">asBC_FuncPtr</a></li>
</ul>
<p>Load the address to a property of the object into the value register. Substitutes the sequence PshV4/8, ADDSi, PopRPtr.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a8950187a9c91330124df91bb27d7a1a3">asBC_LoadThisR</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a55e484687643f87565827249a81cf3a8">asBC_LoadRObjR</a></li>
</ul>
<p>Load the address to a property of a value object into the value register. Substitutes the sequence PSF, ADDSi, PopRPtr.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a2285121bf664f86d462560fde6dad0f7">asBC_LoadVObjR</a></li>
</ul>
<h2><a class="anchor" id="doc_adv_jit_1_2"></a>
Math instructions</h2>
<p>Negate the value in the variable. The original value is overwritten.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a01fe11f3f95464cb3e409c3181a02c1a">asBC_NEGi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a7de6d0118307feca68660e67c79ca7dc">asBC_NEGf</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a928187662dfd857cf8edb10a632651d4">asBC_NEGd</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a3cf16372d571ec566ae93fd80e05b1ad">asBC_NEGi64</a></li>
</ul>
<p>Perform the operation with the value of two variables and store the result in a third variable.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a42520944f391260636e0eed5c9ab76a9">asBC_ADDi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0af04edb64674c1c46b1769b4f31828441">asBC_SUBi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a93c630d303bb6e91e044d6afea71b798">asBC_MULi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a27123834824beb61355869faf5e23cf4">asBC_DIVi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ae8e569143d23f682b3aecfa100bdfd4e">asBC_MODi</a></li>
</ul>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ab1bffd05b8b41e4a9dd09618b82bba9d">asBC_ADDf</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0aca247b39114dc45ae993dd1cf80226aa">asBC_SUBf</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ab32f923ffcabab481a2e46f702b17f7a">asBC_MULf</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0acf3448b40f2fc34b4007f27c4f8488a2">asBC_DIVf</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ae54338068d6b6e965c497c6b1d68c64e">asBC_MODf</a></li>
</ul>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ad2ff7a206ad788bd2b37b8ee92be7940">asBC_ADDd</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a40632786e202cc6a617bbe63a8d4cc0f">asBC_SUBd</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a411e71202157cfece504379e6171a464">asBC_MULd</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a016b86c3e0706775fc653d6f94048765">asBC_DIVd</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ac2137a8a8fe7af5070f37e796d863af2">asBC_MODd</a></li>
</ul>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ab1afb9b4dbebb726108b46887175c57e">asBC_ADDi64</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a14984f047b26178d73ea024e97b3718c">asBC_SUBi64</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a38931ac737104c4ccca730705bd7ec48">asBC_MULi64</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a9f31be749c98afaa86f5b3a83218752b">asBC_DIVi64</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a3bd852f5aa7c1a12da37a7ac91b1c83f">asBC_MODi64</a></li>
</ul>
<p>Perform the operation with a constant value and the value of the variable. The original value is overwritten.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a1194db3e433a943156d548b2bb34ef13">asBC_ADDIi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ab77b30af827c52ee62a5ccab94d96003">asBC_SUBIi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0af29eb13449c228f4dead9ba6da590147">asBC_MULIi</a></li>
</ul>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a15032e422f3346940aa37ec6dc6305d7">asBC_ADDIf</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a83fc6f0a163316a6be6c280df57fcd13">asBC_SUBIf</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a29cb2ee51427268cf549f90e110b1e38">asBC_MULIf</a></li>
</ul>
<h2><a class="anchor" id="doc_adv_jit_1_3"></a>
Bitwise instructions</h2>
<p>Perform a boolean not operation on the value in the variable. The original value is overwritten.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a13a6093971474018818db5a76f012f26">asBC_NOT</a></li>
</ul>
<p>Perform a bitwise complement on the value in the variable. The original value is overwritten.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ac9e8418aad908e23c4e2e9cbbc71f8fe">asBC_BNOT</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a263c5cfa90baf8f63c5b4d110c3d9daa">asBC_BNOT64</a></li>
</ul>
<p>Perform the operation with the value of two variables and store the result in a third variable.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a051857d502a904223293d1604765c0f5">asBC_BAND</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a4265bc99ed27ff3e3cd55e7de3f6ee57">asBC_BOR</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a099bdbc768c58ad62d2662dd9727806a">asBC_BXOR</a></li>
</ul>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0af1dff3cce666a689e8b1d5ceb91f1b42">asBC_BAND64</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a5d6d553690fa38dc7f2b6a7b9ee14345">asBC_BOR64</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ae4d7a6a1af23b2f14d5af7b6dfaa3f28">asBC_BXOR64</a></li>
</ul>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a671220a8df608a65acb7c5be7d950134">asBC_BSLL</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a427239dea36c73be86be67963dbc1935">asBC_BSRL</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ae7f2672c3c3a6859f17ebc25df4d95a1">asBC_BSRA</a></li>
</ul>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0af18e856f167de0796acb84d3f5df09b2">asBC_BSLL64</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0abb511dcd15fb9875ba270d5b95fed24d">asBC_BSRL64</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a4203e09b3bf5f15810f0e2076c0088a5">asBC_BSRA64</a></li>
</ul>
<h2><a class="anchor" id="doc_adv_jit_1_4"></a>
Comparisons</h2>
<p>Compare the value of two variables and store the result in the value register.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0af81b0602117dd9ef104dea7d2d526cfa">asBC_CMPi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a2d473195aba3ddcc8d6419c047d0c741">asBC_CMPu</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a158d7962cea577c9a18f639976c6c0ab">asBC_CMPf</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ad72b54941de6dccfbea9c6ccb5d915df">asBC_CMPd</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0aa2c75f0562b433b18406a939bcd62e95">asBC_CMPi64</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0af521b982839cdc97e9b2413ac085b09f">asBC_CMPu64</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a17c0368321613c9e38e438f96b80bdd7">asBC_CmpPtr</a></li>
</ul>
<p>Compare the value of a variable with a constant and store the result in the value register.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a33a798d1fe04ec8e1794ddb0838039d9">asBC_CMPIi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ad7195755387f9159b4a2c5de9e60a068">asBC_CMPIu</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a2f5efa47419aa3a053f1e8916b46e303">asBC_CMPIf</a></li>
</ul>
<p>Test the value in the value register. Update the value register according to the result.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0afa0764106ecce859b73b84119cdbbb19">asBC_TZ</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ac63ed68678f4e7490d67727fd3dc6a80">asBC_TNZ</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a0136c50e72d9f3e09f053768373f8fd2">asBC_TS</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a6283325ca6354974eec243ce918e6902">asBC_TNS</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a6dc225b22eecb133457b82700081cbcf">asBC_TP</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0aa57f16a2b46be5e2ce7740389c8eb479">asBC_TNP</a></li>
</ul>
<h2><a class="anchor" id="doc_adv_jit_1_5"></a>
Type conversions</h2>
<p>Convert the value in the variable. The original value is overwritten.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0aea965df01399592f1e8c3950a35e837f">asBC_iTOb</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0acdf698af6bd4a5e427922e9462244319">asBC_iTOw</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0afbfb6f5aaf4d6599e16b4bfe458ce01e">asBC_sbTOi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0aad0cc8bb8012f257fa99f01b8b7035bd">asBC_swTOi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a9c20fcde56da1d0386a10490fb13a7d6">asBC_ubTOi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a1d90e73c2b31b0e15282d092b46cf742">asBC_uwTOi</a></li>
</ul>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a92116eabda2e6b20e1ea2a13a316decd">asBC_iTOf</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a505d5d669a5d046b5fe5edbde407d12a">asBC_fTOi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a6f445f24f6501cf4c3711929a1d5e111">asBC_uTOf</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a9e9e1d16d150ca95e5f8abee59aaed51">asBC_fTOu</a></li>
</ul>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a043e40662a884a7c39bbd982d3e2266f">asBC_dTOi64</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a062cb021be1b64d913527c22c7dba896">asBC_dTOu64</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a7e110775dee3e08f9ef7e2215fb48b26">asBC_i64TOd</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a61a9abe7f4b17874cc1f2eff761bc3b2">asBC_u64TOd</a></li>
</ul>
<p>Convert the value of a variable and store the result in another variable.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0afb5dbe4edea3e5cfa521fd3a5738ccf6">asBC_dTOi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ab316237649a76cf10a1b9bc68c2792c4">asBC_dTOu</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a854599de98fcbd9334c9223e8e9058db">asBC_dTOf</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ad9a5f8875c44b01fa6e1501bb70bae00">asBC_iTOd</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0abb2e2f37012d6cb75b446fc992dba6c4">asBC_uTOd</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a8d1a589383ae9187b58a3f774cbe77cd">asBC_fTOd</a></li>
</ul>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ae66d679b16934aeb2c7047ea1b1fae85">asBC_i64TOi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a22f2099b91cb1bde2df44760ea2efed7">asBC_i64TOf</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ad293bf12c4a8de3c50794a9eaeac636d">asBC_u64TOf</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0af5f7cad82e5cd2dc4a3d690a2ab46bce">asBC_uTOi64</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0aa48a1b118c32dc9d5667b9039aa06bff">asBC_iTOi64</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0acd75aec128802694c2674b122204e704">asBC_fTOi64</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ae5bd9d9c6b756c2898f2776b0b08e793">asBC_fTOu64</a></li>
</ul>
<h2><a class="anchor" id="doc_adv_jit_1_6"></a>
Increment and decrement</h2>
<p>Increment or decrement the value pointed to by the address in the value register.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a152dde2647cf17bf01f255cab7d7a398">asBC_INCi8</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0aeb53c8898d91276563cf360539b2c4ce">asBC_DECi8</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a4669b8c92a8b8d9c6e84d0ed1db14d33">asBC_INCi16</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a9ea8e03a8da22997477fca4f79d55830">asBC_DECi16</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a630408d0f3892bfa8ba01da409ca30e3">asBC_INCi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ad78d2aec3e51a9aaf3fb5f3c12afc420">asBC_DECi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a6216ec910e53970e52e518da4786a37b">asBC_INCi64</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a27cdd04643b9331e2aedfb6c1af1c021">asBC_DECi64</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0aef2f50c2ed4d67c3da6630616ad00a7b">asBC_INCf</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a0fedf5312b600d2cd8e991139ff237f1">asBC_DECf</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a46b7c1d75685f454688e361e4da99994">asBC_INCd</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a46ccee51c06462cd452c6a97a2854a22">asBC_DECd</a></li>
</ul>
<p>Increment or decrement the value in the variable.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0af9579b13bff9bcc81710fe7dba9c0957">asBC_IncVi</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a0f57e25fb34f2d086f35f60cfe51782e">asBC_DecVi</a></li>
</ul>
<h2><a class="anchor" id="doc_adv_jit_1_7"></a>
Flow control</h2>
<p>Setup the VM to begin execution of the other script function</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a4055fd59f44ce3f31eac60377b0967c8">asBC_CALL</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0aedb4e479a4988aac48f1facb6a0048d6">asBC_CALLINTF</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a22f812924fa0048de540e0cca53a2718">asBC_CALLBND</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a35c09c890b9f46160c193a3a07cdeedb">asBC_CallPtr</a></li>
</ul>
<p>Setup the VM to return to the calling function</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0adf0df27f972bc4edb9b2213fe6448f68">asBC_RET</a></li>
</ul>
<p>Make an unconditional jump to a relative position</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a6742a11dd679468b98df9c45aabfb32b">asBC_JMP</a></li>
</ul>
<p>Make a jump to a relative position depending on the value in the value register</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a497ae321f5a5889c9bee415b7cc38e9c">asBC_JZ</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a262d3c0a50f45e6b6de3f1b77f4b4bf0">asBC_JNZ</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a2357fddab027985d9af0398e304b0ec1">asBC_JS</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a736796cbac759ad4fc43bb09267f36ca">asBC_JNS</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ac2792270f8022801384ccd0ae3b00604">asBC_JP</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ae4f95a73cfe667f1928e7766ea09511e">asBC_JNP</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a31eae477a85a0b1ee618df42deb0519c">asBC_JMPP</a></li>
</ul>
<p>Call an application registered function</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ac21b3ff5a3ecb6d834bfe2bf7ff36669">asBC_CALLSYS</a></li>
</ul>
<p>Save the state and suspend execution, then return control to the application</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a175714567c483ff439c1d2c125ca9608">asBC_SUSPEND</a></li>
</ul>
<p>Give control of execution to the JIT compiled function</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a6705ee9692b45f118cfe0ea24581fae5">asBC_JitEntry</a></li>
</ul>
<h2><a class="anchor" id="doc_adv_jit_1_8"></a>
Stack and data management</h2>
<p>Update the stack pointer.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0aa41f70f690348045c1ee90dae68a9c42">asBC_POP</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a6a74cc67208599b6a18f9ab85d03d023">asBC_PUSH</a></li>
</ul>
<p>Push a constant value on the stack.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a53fa213a7d3fed6add6d37dfe073e1cb">asBC_PshC4</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ac987a5f48ff66860142d01ed51670d91">asBC_PshC8</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a9343148f733f970e3463f37fac57f998">asBC_PshNull</a></li>
</ul>
<p>Push the stack frame pointer on the stack.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a1c42ff5ba726e656b989e3408fe9648f">asBC_PSF</a></li>
</ul>
<p>Swap the top values on the stack.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ac23d851c5aaffca166d6494bec9bcf24">asBC_SwapPtr</a></li>
</ul>
<p>Pop an address from the stack, read a value from the address and push it on the stack.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a2628264804fd19af3ce94e0336b3eeeb">asBC_RDSPtr</a></li>
</ul>
<p>Add an offset to the top address on the stack.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a0219f343e6e7248e72d209ea22b63f4d">asBC_ADDSi</a></li>
</ul>
<p>Push the value of a variable on the stack.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ab858dd8ba0b9fed72638c549f40f60ba">asBC_PshV4</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ae2923dbf7fc9bb70c0c3cbbf8673467c">asBC_PshV8</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a15f565f207bdaab4d5b72867cdd25007">asBC_PshVPtr</a></li>
</ul>
<p>Initialize the value of a variable with a constant.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0af3909e9889d0994c0d0190a147eac3cb">asBC_SetV1</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a709cec30c38c5dc89dfcd92341dafd61">asBC_SetV2</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a95d9223bb76b2abcbc590318007aed93">asBC_SetV4</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ade5e3b21c7d1b9348ac12fc4cd1cbf8a">asBC_SetV8</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a8b5cd32b4b5bc6aaafb0456d931dc11e">asBC_ClrVPtr</a></li>
</ul>
<p>Copy the value of one variable to another.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ac8e1a29718cf8958201d578d56cf74b4">asBC_CpyVtoV4</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0af0a7f6b4a1c14352e7cd02e03c1e7595">asBC_CpyVtoV8</a></li>
</ul>
<p>Validate that an expected pointer is not null.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a0ae4b5ff463c26aad9fbd975a144f2fa">asBC_CHKREF</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ad0c18f6eab27072771563d4464d06a4a">asBC_ChkRefS</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a81142673f63ffd177e20b6296718d3aa">asBC_ChkNullV</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0af859e97239e00dd003a8f75fbf963ded">asBC_ChkNullS</a></li>
</ul>
<p>Push the variable index with the size of a pointer on the stack.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0adb056673fe9802b5d8351835d0c4cea9">asBC_VAR</a></li>
</ul>
<p>Replace a variable index on the stack with an address.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a6ad13f895f055f69384efb4a67941369">asBC_GETREF</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0aaef456de01ad209271078728d304b803">asBC_GETOBJ</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a6b9d0ef0c8e981a591c384792acf2c6d">asBC_GETOBJREF</a></li>
</ul>
<p>Pop or push an address to or from the value register.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a567f07266bd50926c205460b31d579f6">asBC_PopRPtr</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a3ecef93739a85d45002cd073b00da52c">asBC_PshRPtr</a></li>
</ul>
<p>Copy a value between value register and a variable.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0af77782bde1062e849fc6c02c8c4e0106">asBC_CpyVtoR4</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a25f9b87968cb0fea646d003a90bbd0a6">asBC_CpyVtoR8</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a27458705bfaa7f4e5b27f848c0e59c7c">asBC_CpyRtoV4</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a399ae190caa78f468883f9736e8f9d40">asBC_CpyRtoV8</a></li>
</ul>
<p>Copy a value from a variable to the address held in the value register</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a94dbdd03bb807ceb48c3ced7b08cbaf3">asBC_WRTV1</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0af50492589b9b48fb6cce810ea12b2313">asBC_WRTV2</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0aecc937d822668f3d443c2cf7c2c9a91b">asBC_WRTV4</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ac912670273a5cc5857967d6c4ee9fb71">asBC_WRTV8</a></li>
</ul>
<p>Copy a value from the address held in the value register to a variable</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a0375f41153eeaa6d250a6ee262ffa0ba">asBC_RDR1</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0aa470ed962fa3e1a86296998914cbcc12">asBC_RDR2</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0ac66bc5d2959ef22b6c967313aa791b54">asBC_RDR4</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a36dc7a09798a7055d8faece1321e241a">asBC_RDR8</a></li>
</ul>
<p>Load the address of the variable into the value register</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a506cf72989aae9c3f0613b3fdd788a96">asBC_LDV</a></li>
</ul>
<p>Clear the upper bytes of the value register</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a1293f6086ce51f270a7d756413cabb9c">asBC_ClrHi</a></li>
</ul>
<h2><a class="anchor" id="doc_adv_jit_1_9"></a>
Global variables</h2>
<p>Push the value of a global variable on the stack</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a71be4bc7beb5407aac980f73cce33bd6">asBC_PshG4</a></li>
</ul>
<p>Load the address of a global variable into the value register</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a7eecc42f41efaa2a9e52a38b5b2e0761">asBC_LDG</a></li>
</ul>
<p>Load the address of a global variable into the value register and copy the value of the global variable to local variable</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a2d39346b29e025ea48c3d1f9ad5be43e">asBC_LdGRdR4</a></li>
</ul>
<p>Copy a value between local variable and global variable.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a4e7398002dfd57870657a8df142259a1">asBC_CpyVtoG4</a></li>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a4ed62e4b84509466aef25d638026b883">asBC_CpyGtoV4</a></li>
</ul>
<p>Push the address of the global variable on the stack.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0adc83ae72a402eb4c8d8248ef2ef75d9c">asBC_PGA</a></li>
</ul>
<p>Initialize the variable of a global variable with a constant.</p>
<ul>
<li><a class="el" href="angelscript_8h.html#ab3692c4e5d47fc93f8c9646d1783aef0a880a2be05a247612df28ea4569a7a99b">asBC_SetG4</a> </li>
</ul>
</div></div>
</div>
  <div id="nav-path" class="navpath">
    <ul>

    <li class="footer">Generated on Sun Jan 29 2012 15:41:03 for AngelScript by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.5.1 </li>
   </ul>
 </div>


</body>
</html>
